home *** CD-ROM | disk | FTP | other *** search
/ PC Answers 2003 September / PC Answers September 2003.iso / Software / freeware / pixeltoolbox / Setup.exe / Main / PixelToolbox.exe / PixelToolbox.dxr / Scripts_83_Brightness-Contrast script.ls < prev    next >
Encoding:
Text File  |  2002-06-08  |  3.2 KB  |  106 lines

  1. property pMySprite, pBCField, pFieldLimit
  2. global gCast, gSize, gFirstColor, gSecondColor, gWvBgColor, gWvBgShadow, gWvVcolor, gWvVShadow, gWvHcolor, gWvHShadow, gBC, gCurrentBC, gBCMin, gBCMax
  3.  
  4. on beginSprite me
  5.   pMySprite = sprite(me.spriteNum)
  6. end
  7.  
  8. on mouseEnter me
  9.   if gBC <> VOID then
  10.     put "Click and drag to adjust the " & pBCField.word[1] & "." into field "status"
  11.   end if
  12. end
  13.  
  14. on mouseDown me
  15.   sliderBC(me)
  16. end
  17.  
  18. on mouseLeave me
  19.   if gBC <> VOID then
  20.     put EMPTY into field "status"
  21.   end if
  22. end
  23.  
  24. on resetBCSlider
  25.   put 0 into field "Brightness status"
  26.   put 0 into field "Contrast status"
  27.   sprite(195).locH = sprite(279).left
  28.   sprite(196).locH = sprite(279).left
  29. end
  30.  
  31. on sliderBC newloch
  32.   if gBC <> VOID then
  33.     gCurrentBC = duplicate(gBC)
  34.     repeat while the mouseDown
  35.       newloch = the mouseH
  36.       if newloch < (sprite(278).left - 1) then
  37.         newloch = sprite(278).left - 1
  38.       end if
  39.       if newloch > sprite(279).right then
  40.         newloch = sprite(279).right
  41.       end if
  42.       pMySprite.locH = newloch
  43.       put integer((newloch - sprite(279).left) / 100.0 * pFieldLimit) into field pBCField
  44.       updateStage()
  45.     end repeat
  46.     cursor(4)
  47.     updateBC()
  48.     cursor(0)
  49.     gCurrentBC = VOID
  50.   else
  51.     beep()
  52.     pass()
  53.   end if
  54. end
  55.  
  56. on updateBC
  57.   brightValue = integer(the text of field "Brightness status")
  58.   contrastValue = integer(the text of field "Contrast status")
  59.   grayLevel = integer((gBCMin + gBCMax) / 2.0)
  60.   repeat with Y = 0 to integer(gSize) - 1
  61.     repeat with X = 0 to integer(gSize) - 1
  62.       targetBCColor = gBC.getPixel(X, Y)
  63.       if (targetBCColor.red <> 255) and (targetBCColor.red <> 0) then
  64.         pRed = targetBCColor.red + brightValue
  65.       else
  66.         pRed = targetBCColor.red
  67.       end if
  68.       if (targetBCColor.green <> 255) and (targetBCColor.green <> 0) then
  69.         pGreen = targetBCColor.green + brightValue
  70.       else
  71.         pGreen = targetBCColor.green
  72.       end if
  73.       if (targetBCColor.blue <> 255) and (targetBCColor.blue <> 0) then
  74.         pBlue = targetBCColor.blue + brightValue
  75.       else
  76.         pBlue = targetBCColor.blue
  77.       end if
  78.       if contrastValue < 0 then
  79.         redStep = (grayLevel - pRed) / 100.0
  80.         pRed = integer(pRed - (contrastValue * redStep))
  81.         greenStep = (grayLevel - pGreen) / 100.0
  82.         pGreen = integer(pGreen - (contrastValue * greenStep))
  83.         blueStep = (grayLevel - pBlue) / 100.0
  84.         pBlue = integer(pBlue - (contrastValue * blueStep))
  85.       else
  86.         redStep = (pRed - grayLevel) / 100.0
  87.         pRed = integer(pRed + (contrastValue * redStep))
  88.         greenStep = (pGreen - grayLevel) / 100.0
  89.         pGreen = integer(pGreen + (contrastValue * greenStep))
  90.         blueStep = (pBlue - grayLevel) / 100.0
  91.         pBlue = integer(pBlue + (contrastValue * blueStep))
  92.       end if
  93.       gCurrentBC.setPixel(X, Y, rgb(pRed, pGreen, pBlue))
  94.     end repeat
  95.   end repeat
  96.   member("adj tone - " & gSize, gCast).image.copyPixels(gCurrentBC, member("adj tone - " & gSize, gCast).rect, gCurrentBC.rect)
  97.   updateStage()
  98. end
  99.  
  100. on getPropertyDescriptionList me
  101.   list = [:]
  102.   addProp(list, #pBCField, [#comment: "Field Member Name.", #format: #string, #default: "Hue status"])
  103.   addProp(list, #pFieldLimit, [#comment: "Total field range.", #format: #integer, #default: 200])
  104.   return list
  105. end
  106.